"""
random模块：
    ~ sample：无放回随机抽样
    ~ choices：有放回随机抽样
函数的参数：
    ~ 位置参数：传参的时候只需要对号入座即可
    ~ 可变参数：参数的数量可以有零个或多个 ---> *args
    ~ 关键字参数：---> **kwargs
    ~ 命名关键字参数：写在*后面的参数都是命名关键字参数，传参时必须带上参数名
"""
import hashlib
import random
from functools import partial

import MySQLdb


ALL_CHARS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'


def random_string(length=8):
    return ''.join(random.choices(ALL_CHARS, k=length))


def to_md5(content):
    md5_hasher = hashlib.md5(content.encode('utf-8'))
    return md5_hasher.hexdigest()


# 偏函数
connect = partial(
    MySQLdb.connect,
    host='47.104.31.138',
    port=3306,
    user='root',
    password='Luohao.618',
    charset='utf8'
)
